/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.muni.fi.diplomka.datalayer.dao;

import cz.muni.fi.diplomka.datalayer.entity.IncomingResourcesEntity;
import java.util.List;

/**
 * Interface for manipulation with Incoming Resources Entity
 *
 * @author Jakub Kutil
 */
public interface IncomingResourcesDao {

    /**
     * Adds Incoming Resources to DB
     *
     * @param incomingResourcesEntity Incoming Resources to add
     */
    public void addIncomingResources(IncomingResourcesEntity incomingResourcesEntity);

    /**
     * Edits Incoming Resources in DB
     *
     * @param incomingResourcesEntity Incoming Resources to edit
     */
    public void editIncomingResources(IncomingResourcesEntity incomingResourcesEntity);

    /**
     * Deletes Incoming Resources from DB
     *
     * @param id ID of Incoming Resources to delete
     */
    public void deleteIncomingResources(Long id);

    /**
     * Gets all Incoming Resources to specified City
     *
     * @param cityId ID of specified City
     *
     * @return List of all Incoming Resources to City
     */
    public List<IncomingResourcesEntity> getAllIncomingResourcesOfCity(Long cityId);

    /**
     * Gets all Incoming Resources from specified City
     *
     * @param cityId ID of specified City
     *
     * @return List of all Incoming Resources from City
     */
    public List<IncomingResourcesEntity> getAllOutcomingResourcesOfCity(Long cityId);

    /**
     * Gets all Incoming Resources
     *
     * @return List of all Incoming Resources
     */
    public List<IncomingResourcesEntity> getAllIncomingResources();
}
